package com.chen.authority.common.util;

import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.ObjectUtil;
import com.chen.authority.common.constant.SysConstant;
import com.chen.authority.model.vo.UserVo;

/**
 * sa-token工具类
 *
 * @author chengy
 * @date 2022/09/04
 */
public class SaTokenUtil {

    /**
     * 设置登录用户
     */
    public static void setLoginUser(UserVo vo) {
        StpUtil.getTokenSession().set(SysConstant.LOGIN_USER, vo);
    }

    /**
     * 获取登录用户
     */
    public static UserVo getLoginUser() {
        UserVo userVo = (UserVo) StpUtil.getTokenSession().get(SysConstant.LOGIN_USER);
        if (ObjectUtil.isNull(userVo)) {
            throw NotLoginException.newInstance(StpUtil.getLoginType(), StpUtil.TYPE);
        }
        return userVo;
    }

    /**
     * 获取登录用户名
     */
    public static String getLoginUsername() {
        return getLoginUser().getUsername();
    }

}